package org.example.blog.services;

import org.example.blog.entities.Favorite;
import org.example.blog.entities.Post;
import org.zoomdev.zoom.common.utils.Page;

public interface FavoriteService {
    /**
     * 收藏文章
     *
     * @param userId 用户ID
     * @param postId 文章ID
     * @return 收藏信息
     */
    Favorite addFavorite(Long userId, Long postId);

    /**
     * 取消收藏
     *
     * @param favoriteId 收藏ID
     */
    void removeFavorite(Long favoriteId);

    /**
     * 判断用户是否收藏了某篇文章
     *
     * @param userId 用户ID
     * @param postId 文章ID
     * @return 是否收藏
     */
    boolean isFavorite(Long userId, Long postId);

    /**
     * 获取用户收藏的文章列表
     *
     * @param userId 用户ID
     * @param page   页码
     * @param size   每页数量
     * @return 分页的收藏文章
     */
    Page<Post> getUserFavorites(Long userId, int page, int size);
}


